package com.tyanxie.asd.fragment

import android.app.AlertDialog
import android.app.Dialog
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.widget.RadioButton
import androidx.fragment.app.DialogFragment
import com.tyanxie.asd.Constant
import com.tyanxie.asd.activity.DataPanelActivity
import com.tyanxie.asd.databinding.ChoiceTypeDialogBinding

/**
 * 苹果类型选择对话框
 */
class ChoiceAppleTypeDialogFragment : DialogFragment() {
    companion object {
        const val TAG = "ChoiceAppleTypeDialogFragment"
    }

    /**
     * 用户选择选项的idx
     */
    private var choice = 0

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        // 获取对话框的viewBinding
        val ctd = ChoiceTypeDialogBinding.inflate(layoutInflater)
        // 初始化对话框
        val dialog = AlertDialog.Builder(activity).setView(ctd.root).create()
        // 对话框取消按钮点击事件
        ctd.ctdCancelBtn.setOnClickListener {
            dialog.dismiss()
        }
        // 对话框确认按钮点击事件
        ctd.ctdSubmitBtn.setOnClickListener {
            val msg = "choice: ${ctd.root.context.getString(Constant.apples[choice])}"
            Log.d(tag, msg)
            // 跳转到数据结果页面
            val intent = Intent(requireContext(), DataPanelActivity::class.java).apply {
                // 苹果类型idx
                putExtra(Constant.CHOICE_KEY, choice)
            }
            // 启动页面
            startActivity(intent)
            // 关闭对话框
            this.dismiss()
        }
        // 设置可选的苹果类型
        for ((i, item) in Constant.apples.withIndex()) {
            // 初始化并配置radioButton
            val rb = RadioButton(ctd.root.context)
            rb.textSize = 16F
            rb.setPadding(0, 5, 0, 0)
            rb.text = ctd.root.context.getString(item)
            rb.setOnClickListener { // 在点击的时候设置选择项
                choice = i
            }
            // 将radioButton添加进入radioGroup
            ctd.ctdRg.addView(rb, i)
            // 如果是上一次(默认0)选择的选项, 就将其设置为已选择
            if (i == choice) {
                ctd.ctdRg.check(rb.id)
            }
        }
        // 展示对话框
        return dialog
    }
}